package com.example.qxfw.hbqx.service;

import com.example.qxfw.common.entity.qx.SatelliteNephoram3;
import com.example.qxfw.common.entity.zy.AirPollution;
import com.example.qxfw.common.entity.zy.EnviroStation;
import com.example.qxfw.common.entity.zy.SumAtmosphericDayData;


import java.util.Date;
import java.util.List;

public interface HjjcService {
    /**
     *根据时间段查询空气质量日统计表
     * @param observtimeStart 起始时间
     * @param observtimeEnd 终止时间
     * @return
     */
    List<SumAtmosphericDayData> selectOrderByObservtimePeriodOfSumAtmosphericDayData(Date observtimeStart, Date observtimeEnd);

    /**
     *根据时间段查询空气逐小时实况
     * @param observtimeStart 起始时间
     * @param observtimeEnd 终止时间
     * @return
     */
    List<AirPollution> selectByTimePeriodAirPollution(Date observtimeStart, Date observtimeEnd);

    /**
     * 根据开始时间查询空气逐小时实况
     * @param observtimeStart 开始时间
     * @return
     */
    List<AirPollution> selectByTimeOfAirPollution(Date observtimeStart);

    /**
     * 根据站点和时间段查询空气质量日统计表
     * @param observtimeStart 起始时间
     * @param observtimeEnd 终止时间
     * @param stationid 站点编号
     * @return
     */
    List<SumAtmosphericDayData> selectByObservtimeAndstationid(Date observtimeStart, Date observtimeEnd, String stationid);

    /**
     * 根据站点和开始时间查询空气质量日统计表
     * @param observtimeStart 开始时间
     * @return
     */
    List<SumAtmosphericDayData> selectByTimeOfSumAtmosphericDayData(Date observtimeStart);

    /**
     *降序查询所有观测时间，并只显示一条
     * @return
     */
    List<AirPollution> selectByObservtime();

    /**
     * 通过城市获取环境监测站点信息
     * @param city
     * @return
     */
    List<EnviroStation> selectByCity(String city);

    /**
     * 通过城市获取环境监测站点名字
     * @param city
     * @return
     */
    List<EnviroStation> selectByCity1(String city);

    /**
     *从 AirPollution 表中获取除了 StationID 为 'stationid' 的最近3个不重复的 observTime 时间字段，并按降序排序。
     * @param stationid 站点id
     * @return
     */
    List<AirPollution> selectByNotStationid(String stationid);

    /**
     * 获取在规定时间段中非stationid的观测时间
     * @param observtimeStart 观测时间起点
     * @param observtimeEnd 观测时间终点
     * @param stationid 站点id
     * @return
     */
    List<AirPollution> selectByObservtimeAndNotStationid(Date observtimeStart, Date observtimeEnd, String stationid);

    /**
     * 获取除了stationid以外的站点的观测时间
     * @param stationid 站点id
     * @return
     */
    List<SumAtmosphericDayData> getObservtimeByNotStationId(String stationid);

    /**
     * 获取在规定时间段中非stationid的观测时间,升序
     * @param observtimeStart 观测时间起点
     * @param observtimeEnd 观测时间终点
     * @param stationid 站点id
     * @return
     */
    List<SumAtmosphericDayData> getByObservtimeAndNotStationid(Date observtimeStart, Date observtimeEnd, String stationid);

    /**
     * 获取所有空气质量日统计表信息
     * @return
     */
    List<SumAtmosphericDayData> getAllOfSumAtmosphericDayData();

    /**
     * 根据元素和时间段获取空气质量日统计表信息
     * @param observtimeStart 开始时间
     * @param observtimeEnd 结束时间
     * @param element 元素
     * @return
     */
    List<SumAtmosphericDayData> getByTimePeriodAndElementOfSumAtmosphericDayData(Date observtimeStart, Date observtimeEnd, String element);

    /**
     * 根据元素和时间点获取空气质量日统计表信息
     * @param observtime 开始时间
     * @param element 元素
     * @return
     */
    List<SumAtmosphericDayData> getByTimeAndElementOfSumAtmosphericDayData(Date observtime, String element);

    /**
     * 根据元素和时间段获取空气逐小时实况信息
     * @param observtimeStart 开始时间
     * @param observtimeEnd 结束时间
     * @param element 元素
     * @return
     */
    List<AirPollution> getByTimePeriodAndElementOfAirPollution(Date observtimeStart, Date observtimeEnd, String element);

    /**
     * 根据元素和时间点空气逐小时实况信息
     * @param observtime 开始时间
     * @param element 元素
     * @return
     */
    List<AirPollution> getByTimeAndElementOfAirPollution(Date observtime, String element);

    /**
     * 根据时间段查询风云3号卫星云图
     * @param datecharStart 开始时间
     * @param datecharEnd 结束时间
     * @return
     */
    List<SatelliteNephoram3> selectByTimePeriodOfSatelliteNephoram3(Date datecharStart, Date datecharEnd);






}